home *** CD-ROM | disk | FTP | other *** search
/ Practical Algorithms for Image Analysis / Practical Algorithms for Image Analysis.iso / TARFILE.GZ / tarfile / util / linux / tofrodos-1.1 / makefile < prev    next >
Makefile  |  1999-09-11  |  4KB  |  197 lines

  1. # makefile.gcc    Makefile for building with the GNU C compiler on Linux.
  2. # Copyright (c) 1996 by Christopher S L Heng. All rights reserved.
  3.  
  4. # $Id: makefile.gcc 1.4 1996/06/22 20:53:33 chris Exp $ /*
  5.  
  6. # This makefile requires the GNU make to work (we use the GNU extensions).
  7.  
  8. # Define the following if you need
  9. #
  10. #    DEBUG    to add debugging information, eg "make DEBUG=1 all"
  11. #    TARGET    to choose an ELF or a.out build. Defaults to whatever
  12. #        your compiler defaults to. Eg,
  13. #            make TARGET=ELF all
  14. #            make TARGET=AOUT all
  15.  
  16.  
  17. ifdef DEBUG
  18. CDEBUG = -g
  19. LDEBUG = -g
  20. else
  21. CDEBUG = -O2
  22. LDEBUG = -s
  23. endif
  24.  
  25. ifeq ($(TARGET),AOUT)
  26. TFLAG = -b i486-linuxaout
  27. else
  28. TFLAG =
  29. endif
  30.  
  31. ifndef VERSTR
  32. VERSTR = 0.0
  33. endif
  34.  
  35. # programs
  36. CC = gcc
  37. CD = cd
  38. CP = cp
  39. GZIP = gzip
  40. INSTALL = install
  41. LN = ln
  42. LD = gcc
  43. MAKE = make
  44. MKDIR = mkdir
  45. MV = mv
  46. RM = rm -f
  47. TAR = tar
  48. ZIP = zip
  49.  
  50. # flags
  51. CFLAGS = $(DEFINES) $(TFLAG) $(CDEBUG) -c -Wall
  52. GZIPFLAGS = -9
  53. INSTALLBINFLAGS = -m 755
  54. INSTALLDATAFLAGS = -m 644
  55. LDFLAGS = $(TFLAG) $(LDEBUG)
  56. LNFLAGS = -sf
  57. RMRECURFLAGS = -rf
  58. TARFLAGS = cvf
  59. ZIPSRCFLAGS = -r -9
  60.  
  61. # directories
  62. BINDIR = /usr/local/bin
  63. DISTDIR = tofrodos-$(VERSTR)
  64. MANDIR = /usr/local/man/man1
  65.  
  66. # filenames
  67. FROMDOS = fromdos
  68. FROMDOSMAN = fromdos.1
  69. FROMDOSTXT = fromdos.txt
  70. TARGZNAME = $(TARNAME).gz
  71. TARNAME = tofrodos-$(VERSTR).tar
  72. TODOS = todos
  73. ZIPSRCNAME = tfd.zip
  74.  
  75. # lists of filenames
  76. DISTFILES = config.h \
  77.     copying \
  78.     emsg.h \
  79.     fromdos.elf \
  80.     fromdos.exe \
  81.     fromdos.out \
  82.     init.c \
  83.     makefile.gcc \
  84.     readme.txt \
  85.     todos.exe \
  86.     tofrodos.c \
  87.     tofrodos.h \
  88.     tofrodos.lsm \
  89.     utility.c \
  90.     utility.h \
  91.     version.h \
  92.     $(FROMDOSMAN)
  93. OBJS = init.o \
  94.     tofrodos.o \
  95.     utility.o
  96.  
  97. # implicit rules
  98. .c.o:
  99.     $(CC) $(CFLAGS) $<
  100.  
  101. # user visible rules
  102. all: $(FROMDOS) $(TODOS)
  103.  
  104. clean:
  105.     $(RM) $(OBJS)
  106.  
  107. clobber: clean
  108.     $(RM) $(FROMDOS) $(TODOS) fromdos.elf fromdos.out
  109.  
  110. dist: $(DISTFILES) $(DISTDIR)
  111.     $(CP) $(DISTFILES) $(DISTDIR)
  112.     $(MV) $(DISTDIR)/makefile.gcc $(DISTDIR)/Makefile
  113.     $(MV) $(DISTDIR)/copying $(DISTDIR)/COPYING
  114.     $(MV) $(DISTDIR)/readme.txt $(DISTDIR)/README.TXT
  115.     ($(CD) $(DISTDIR) ; $(LN) $(LNFLAGS) fromdos.out todos.out)
  116.     ($(CD) $(DISTDIR) ; $(LN) $(LNFLAGS) fromdos.elf todos.elf)
  117.  
  118. distclean: clobber
  119.     $(RM) $(RMRECURFLAGS) $(DISTDIR)
  120.  
  121. install: all installman
  122.     $(INSTALL) $(INSTALLBINFLAGS) $(FROMDOS) $(BINDIR)
  123.     ($(CD) $(BINDIR) ; $(LN) $(LNFLAGS) fromdos todos)
  124.  
  125. install.elf: fromdos.elf installman
  126.     $(INSTALL) $(INSTALLBINFLAGS) fromdos.elf $(BINDIR)/fromdos
  127.     ($(CD) $(BINDIR) ; $(LN) $(LNFLAGS) fromdos todos)
  128.  
  129. install.out: fromdos.out installman
  130.     $(INSTALL) $(INSTALLBINFLAGS) fromdos.out $(BINDIR)/fromdos
  131.     ($(CD) $(BINDIR) ; $(LN) $(LNFLAGS) fromdos todos)
  132.  
  133. installman: $(FROMDOSMAN)
  134.     $(INSTALL) $(INSTALLDATAFLAGS) $(FROMDOSMAN) $(MANDIR)
  135.     ($(CD) $(MANDIR) ; $(LN) $(LNFLAGS) fromdos.1 todos.1)
  136.  
  137. save:
  138.     $(ZIP) $(ZIPSRCFLAGS) $(ZIPSRCNAME) *
  139.  
  140. tardist: $(TARGZNAME)
  141.  
  142.  
  143. # real rules
  144. fromdos.out:
  145.     $(RM) $(OBJS)
  146.     $(MAKE) TARGET=AOUT $(FROMDOS)
  147.     $(MV) $(FROMDOS) $@
  148.  
  149. fromdos.elf:
  150.     $(RM) $(OBJS)
  151.     $(MAKE) TARGET=ELF $(FROMDOS)
  152.     $(MV) $(FROMDOS) $@
  153.  
  154. todos.out: fromdos.out
  155.     $(LN) $(LNFLAGS) fromdos.out $@
  156.  
  157. todos.elf: fromdos.elf
  158.     $(LN) $(LNFLAGS) fromdos.elf $@
  159.  
  160. $(DISTDIR):
  161.     $(MKDIR) $(DISTDIR)
  162.  
  163. $(FROMDOS): $(OBJS)
  164.     $(CC) $(LDFLAGS) -o $(FROMDOS) $(OBJS)
  165.  
  166. $(FROMDOSTXT): $(FROMDOSMAN)
  167.     gtbl $(FROMDOSMAN) | groff -Tascii -mandoc | \
  168.         troff -Tascii -mandoc | grotty > $@
  169.  
  170. $(TARGZNAME): dist
  171.     $(TAR) $(TARFLAGS) $(TARNAME) $(DISTDIR)
  172.     $(GZIP) $(GZIPFLAGS) $(TARNAME)
  173.  
  174. $(TODOS): $(FROMDOS)
  175.     $(LN) $(LNFLAGS) $(FROMDOS) $(TODOS)
  176.  
  177. # objects
  178. init.o: init.c config.h emsg.h tofrodos.h utility.h version.h
  179.  
  180. tofrodos.o: tofrodos.c config.h emsg.h tofrodos.h utility.h version.h
  181.  
  182. utility.o: utility.c config.h emsg.h tofrodos.h utility.h
  183.  
  184.  
  185. # The following information is for the information of the maintainer of
  186. # the package only.
  187.  
  188. # To make the distribution tar file, you need to define VERSTR to the
  189. # version number. Eg, for a version 1.0 release, define VERSTR=1.0
  190. # Hence a make command line would read
  191. #    make VERSTR=1.0 tardist
  192. # If VERSTR is not defined at any time, it defaults to 0.0 (to remind
  193. # you that you forgot something!).
  194. #
  195. # Before making tardist, you need to compile in DOS first.
  196.  
  197.